<?php
/**
 * Данный класс сильно связан с Admin_LoginController
 * Я поместил его сюда потому что не разобрался в какую директорию его надо класть.
 */
class Nippy_Plugin_IdentityLoader extends Zend_Controller_Plugin_Abstract {
	public function preDispatch(Zend_Controller_Request_Abstract $request) {
        //1. Модули по умолчанию открыты для пользователя. Временно.
        if ($request->getModuleName()=='default') return;
        $auth = Zend_Auth::getInstance();
        if ($auth->hasIdentity()){
            $data = $auth->getStorage()->read();
            if (isset($data['user'])) //2. Считаем, что пользователь имеет полный доступ
                return;
        }
        //3. Все остальные - авторизоваться
        $r = $request->getParam('redirect',null);
        if (null==$r) $request->setParam('redirect', $request->getRequestUri());
        $request->setModuleName('admin')->setControllerName('login')->setActionName('index');
	}
}